﻿using System;
using System.Collections;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;
using MedicalAssistant.core;

namespace MedicalAssistant
{
    public partial class Consulta : Form
    {
        
            private const string S ="Sim";
            private const string N ="Não";
            private const string NU ="Não usou";
            private const string NS = "Não sabe";
            private const string SD ="Sem dados";
            private const string P ="Pai";
            private const string M ="Mãe";
            private const string I ="Irmão/Irmã";
            private const string T ="Tio/Tia";
            private const string A ="Avô/Avó";
            private const string O ="Outro";
            private const string MEQ2 ="Menos que 2 anos";
            private const string MAQ2 ="Mais que 2 anos";

        private uint idDoPaciente;

        public Consulta(uint idDoPaciente)
        {
            InitializeComponent();

            this.idDoPaciente = idDoPaciente;

            label42.Text =
                "O Rx apresenta condensação ou infiltrado evoluindo com piora"+ Environment.NewLine 
                + " ou sem melhora com uso de antibióticos comuns?";

            label44.Text = "O Rx apresenta condensação ou infiltrado de qualquer tipo" 
                + Environment.NewLine + " com duração menor que 2 semanas?";

            SetComboBoxEscolha2(comboBox22);
            SetComboBoxEscolha2(comboBox24);
            SetComboBoxEscolha2(comboBox26);
            SetComboBoxEscolha2(comboBox28);
            SetComboBoxEscolha2(comboBox30);
            SetComboBoxEscolha2(comboBox32);
            SetComboBoxEscolha3(comboBox34);
            SetComboBoxEscolha4(comboBox35);
            SetComboBoxEscolha1(comboBox36);
            
            SetComboBoxEscolha1(comboBox38);
            SetComboBoxEscolha1(comboBox39);
            SetComboBoxEscolha1(comboBox40);
            SetComboBoxEscolha1(comboBox42);
            SetComboBoxEscolha1(comboBox44);
            SetComboBoxEscolha1(comboBox45);
            
            SetComboBoxEscolha2(comboBox47);
            SetComboBoxEscolha5(comboBox48);
            SetComboBoxEscolha2(comboBox49);
            SetComboBoxEscolha2(comboBox50);

            SetComboBoxEscolha2(comboBox52);
            SetComboBoxEscolha6(comboBox53);


        }

        private void Consulta_Load(object sender, EventArgs e)
        {

        }

        private void comboBox22_SelectedIndexChanged(object sender, EventArgs e)
        {
            
        }

        private void buttonCancelar_Click(object sender, EventArgs e)
        {
            this.Close();
        }

        private void buttonDiagnostico_Click(object sender, EventArgs e)
        {
            core.Consulta con = new core.Consulta((double)numericUpDown2.Value, (double)(numericUpDown1.Value / 1000), core.Consulta.TipoDeConsulta.PrimeiraCosulta);
            List<decimal> dias = new List<decimal>();
            dias.Add(numericUpDown23.Value);
            dias.Add(numericUpDown25.Value);
            dias.Add(numericUpDown27.Value);
            dias.Add(numericUpDown29.Value);
            dias.Add(numericUpDown31.Value);
            dias.Add(numericUpDown33.Value);
            con.QuadroClinico(GetEscolha2(comboBox22), GetEscolha2(comboBox24), GetEscolha2(comboBox26),
                              GetEscolha2(comboBox28), GetEscolha2(comboBox30), GetEscolha2(comboBox32),
                              (uint)dias.Max(), GetEscolha3(comboBox34), GetEscolha4(comboBox35),
                              GetEscolha1(comboBox36));

        }

        private void SetComboBoxEscolha1(ComboBox box)
        {
            ArrayList escolhaDataSource = new ArrayList();
            escolhaDataSource.Add(S);
            escolhaDataSource.Add(N);
            box.DataSource = escolhaDataSource;
        }

        private void SetComboBoxEscolha2(ComboBox box)
        {
            ArrayList escolhaDataSource = new ArrayList();
            escolhaDataSource.Add(S);
            escolhaDataSource.Add(N);
            escolhaDataSource.Add(NS);
            box.DataSource = escolhaDataSource;
        }

        private void SetComboBoxEscolha3(ComboBox box)
        {
            ArrayList escolha3DataSource = new ArrayList();
            escolha3DataSource.Add(S);
            escolha3DataSource.Add(N);
            escolha3DataSource.Add(SD);
            box.DataSource = escolha3DataSource;
        }

        private void SetComboBoxEscolha4(ComboBox box)
        {
            ArrayList escolhaDataSource = new ArrayList();
            escolhaDataSource.Add(S);
            escolhaDataSource.Add(N);
            escolhaDataSource.Add(NU);
            escolhaDataSource.Add(SD);
            box.DataSource = escolhaDataSource;
        }

        private void SetComboBoxEscolha5(ComboBox box)
        {
            ArrayList escolhaDataSource = new ArrayList();
            escolhaDataSource.Add(P);
            escolhaDataSource.Add(M);
            escolhaDataSource.Add(I);
            escolhaDataSource.Add(T);
            escolhaDataSource.Add(A);
            escolhaDataSource.Add(O);
            escolhaDataSource.Add(NS);
            box.DataSource = escolhaDataSource;
        }

        private void SetComboBoxEscolha6(ComboBox box)
        {
            ArrayList escolhaDataSource = new ArrayList();
            escolhaDataSource.Add(MEQ2);
            escolhaDataSource.Add(MAQ2);
            escolhaDataSource.Add(NS);
            box.DataSource = escolhaDataSource;
        }

        private Questionario.Escolha1 GetEscolha1(ComboBox box)
        {
            if (box.Text == S)
            {
                return Questionario.Escolha1.SIM;
            }else if (box.Text == N)
            {
                return Questionario.Escolha1.NAO;
            }
            else
            {
                throw new ExcecaoDoSistema("Escolha inválida");
            }
        }

        private Questionario.Escolha2 GetEscolha2(ComboBox box)
        {
            if (box.Text == S)
            {
                return Questionario.Escolha2.SIM;
            }
            else if (box.Text == N)
            {
                return Questionario.Escolha2.NAO;
            }
            else if (box.Text == NS)
            {
                return Questionario.Escolha2.NAOSABE;
            }
            else
            {
                throw new ExcecaoDoSistema("Escolha inválida");
            }
        }

        private Questionario.Escolha3 GetEscolha3(ComboBox box)
        {
            if (box.Text == S)
            {
                return Questionario.Escolha3.SIM;
            }
            else if (box.Text == N)
            {
                return Questionario.Escolha3.NAO;
            }
            else if (box.Text == SD)
            {
                return Questionario.Escolha3.SEMDADOS;
            }
            else
            {
                throw new ExcecaoDoSistema("Escolha inválida");
            }
        }

        private Questionario.Escolha4 GetEscolha4(ComboBox box)
        {
            if (box.Text == S)
            {
                return Questionario.Escolha4.SIM;
            }
            else if (box.Text == N)
            {
                return Questionario.Escolha4.NAO;
            }
            else if (box.Text == SD)
            {
                return Questionario.Escolha4.SEMDADOS;
            }
            else if (box.Text == NU)
            {
                return Questionario.Escolha4.NAOUSOU;
            }
            else
            {
                throw new ExcecaoDoSistema("Escolha inválida");
            }
        }

        private Questionario.Escolha5 GetEscolha5(ComboBox box)
        {
            if (box.Text == P)
            {
                return Questionario.Escolha5.PAI;
            }
            else if (box.Text == M)
            {
                return Questionario.Escolha5.MAE;
            }
            else if (box.Text == I)
            {
                return Questionario.Escolha5.IRMAO;
            }
            else if (box.Text == T)
            {
                return Questionario.Escolha5.TIO;
            }
            else if (box.Text == A)
            {
                return Questionario.Escolha5.AVO;
            }
            else if (box.Text == NS)
            {
                return Questionario.Escolha5.NAOSABE;
            }
            else if (box.Text == O)
            {
                return Questionario.Escolha5.OUTRO;
            }
            else
            {
                throw new ExcecaoDoSistema("Escolha inválida");
            }
        }

        private Questionario.Escolha6 GetEscolha6(ComboBox box)
        {
            if (box.Text == MEQ2)
            {
                return Questionario.Escolha6.MENOS2ANOS;
            }
            else if (box.Text == MAQ2)
            {
                return Questionario.Escolha6.MAIS2ANOS;
            }
            else if (box.Text == NS)
            {
                return Questionario.Escolha6.NAOSABE;
            }
            else
            {
                throw new ExcecaoDoSistema("Escolha inválida");
            }
        }

    }

}

